package file;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

/**
 * 程序启动后，要求用户输入一个文件名，如果文件存在则提示并要求用户更换，直到
 * 该文件还不存在为止，然后将这个文件在当前目录中创建出来。
 */
public class FileWork {
    public static void main(String[] args) throws IOException {
       /* for (int i = 1; i < 101; i++) {
            File file = new File("./" + i + ".txt");
            if (file.exists()) {
                System.out.println("文件已创建");
            } else {
                file.createNewFile();
            }
        }
        for (int i = 1; i < 101; i++) {
            File file = new File("./" + i + ".txt");
            if (file.exists()) {
               file.delete();
            }
        }
//3. Test03.java：要求用户在控制台输入一个目录名，然后将这个目录创建在当前项目目录下

        Scanner scan = new Scanner(System.in);
        System.out.println("请输入目录名：");
        String name = scan.nextLine();
        File dir = new File("./"+name);
        if(dir.exists()){
            System.out.println("文件已存在");
        }else {
            dir.mkdirs();
            System.out.println("创建完成");
        }*/
//4. Test04.java：要求用在控制台输入一个目录名，然后将当前项目目录下的这个目录删除。（只要求删除Test03创建的空目录）
       /* Scanner scan = new Scanner(System.in);
        System.out.println("请输入目录名：");
        String dirname = scan.nextLine();
        File directory = new File(dirname);
        if(directory.exists()){
            directory.delete();
            System.out.println("目录已删除");
        }else {
            System.out.println("文件不存在");
        }*/
//5. Test05.java：程序启动后，要求用户输入一个文件名，如果文件存在则提示并要求用户更换，直到
//该文件还不存在为止，然后将这个文件在当前目录中创建出来。
       /* Scanner scan = new Scanner(System.in);
        System.out.println("请输入文件名：");
        String name = scan.nextLine();
        File file = new File(name);
        while (true){
            if(file.exists()){
                System.out.println("文件已存在,请重新输入：");
                 name = scan.nextLine();
//                 file = new File(name);
            }else {
                file = new File(name);
                file.createNewFile();
                System.out.println("创建完成");
                break;
            }
        }*/
//6. Test06.java：列出当前目录中所有名字包含s的子项。要求：使用匿名内部类和lambda两种写法
            File dir = new File(".");
        if(dir.isDirectory()){
            File[] subs = dir.listFiles(pathname -> pathname.getName().contains("s"));
            //File[] subs = dir.listFiles(pathname -> (pathname.getName().indexOf("s"))!=-1);
            for(File sub :subs){
                System.out.println(sub.getName());
            }

        }

    }
}
